home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 11 - 1995 / 11.02 Feb 95 / Yenta / Erics C++ Libraries / Periodic Task Classes / CPPPeriodicTask.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-04  |  1.2 KB  |  58 lines  |  [TEXT/KAHL]

  1. /********************************************************* DEFINITION
  2.     DATE:    9/16/93
  3.     AUTHOR: Eric R. Rosé
  4.     
  5.     CLASS:  CPeriodicTask
  6.     
  7.     SUPERCLASS: CObject
  8.     
  9.         This class is an abstract class for objects which
  10.         perform some periodic action.
  11.     
  12. ********************************************************************/
  13.  
  14. #pragma once
  15.  
  16. #include <CPPObject.h>
  17.  
  18. class CPPTaskManager;
  19.  
  20. typedef void (*CompletionProc)(CPPObject *TheTask);
  21.  
  22. class CPPPeriodicTask : public CPPObject {
  23.  
  24. public:
  25.     Boolean        isRunning;
  26.  
  27.                     CPPPeriodicTask (CPPTaskManager *TaskManager, 
  28.                                      long minPeriod = 120,
  29.                                         Boolean deleteWhenCompleted = TRUE);
  30.                     ~CPPPeriodicTask (void);
  31.                     
  32.     virtual    char    *ClassName (void);
  33.  
  34.     Boolean            hasCompleted;
  35.     Boolean            deleteWhenDone;
  36.     
  37.     long            GetPeriod (void);
  38.     long            GetTimesCalled (void);
  39.     void            SetPeriod (long newPeriod);
  40.     OSErr            TaskError (void);
  41.     void            SetCompletionProc (CompletionProc NewProc);
  42.     
  43.     virtual    Boolean    NeedsToRun (void);
  44.     virtual    void    DoPeriodicAction (void);
  45.     virtual    void    DoCompletedAction (void);
  46.     
  47. protected:
  48.     OSErr            callResult;
  49.     CPPTaskManager    *ourManager;
  50.     CompletionProc    completion;
  51.     
  52. private:
  53.     long        minimumPeriod;
  54.     long        lastCalled;
  55.     long        timesCalled;
  56. };
  57.  
  58.